﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DAL
{
    [Serializable]
    public partial class Empresa
    {
        public string getCorrelativo(dbGestionDataContext _db)
        {
            string numDocumento = "";

            int c = _db.Empresas.Count();
      
            if (c==0)
            {
                numDocumento = "01";
            }
            else
            {
                var q = _db.Empresas.Max(p => p.codigo);
                int numActual = int.Parse(q.ToString());
                numActual++;
                if (numActual < 10)
                    numDocumento = "0" + numActual.ToString();
                //if (numActual < 100)
                //    numDocumento = "0" + numActual.ToString();

                else if (numActual > 99)
                {
                    throw new Exception("Limite  de Correlativo");
                }


            }
            return numDocumento;

        }
        public int getidAnterior(dbGestionDataContext _db, int idinternal)
        {
            int intAnterior = 0;

            int c = _db.Empresas.Where(p => p.idInternal < idinternal).Count();
            if (c == 0)
            {
                throw new Exception("No existe Registros");
            }
            else
            {

                
                intAnterior=_db.Empresas.Where(a=>a.idInternal<idinternal).Max(a=>a.idInternal);

            }

            
            return intAnterior;

        }
        public int getidSiguiente(dbGestionDataContext _db, int idinternal)
        {
            int intSiguiente = 0;

            //revisar la sentencia generada

            int c = _db.Empresas.Where(p => p.idInternal > idinternal).Count();

            if (c == 0)
            {
                throw new Exception("No existe Registros");
            }
            else
            {
                intSiguiente = _db.Empresas.Where(p => p.idInternal > idinternal).Min(a=>a.idInternal);
            }

            return intSiguiente;
        }

    }
}
